// article.js
const { articleAPI } = require('../../interface.js')

Page({
  data: {
    dailyArticles: [], // 按日期分组的文章数据
    loading: false
  },

  // 从文章内容中提取第一张图片
  getFirstImageFromContent(content) {
    if (!content || !Array.isArray(content) || content.length === 0) {
      return '../../images/placeholder.png'
    }

    // 使用content数组第0项的url字段作为封面图
    const firstItem = content[0]
    if (firstItem && firstItem.url) {
      return firstItem.url
    }

    // 如果第0项没有url字段，则查找其他类型的图片
    for (let item of content) {
      if (item.type === 'image' && item.url) {
        return item.url
      }
      if (item.type === 'html' && item.content) {
        // 使用正则表达式匹配HTML中的img标签
        const imgMatch = item.content.match(/<img[^>]+src=["']([^"']+)["'][^>]*>/i)
        if (imgMatch && imgMatch[1]) {
          return imgMatch[1]
        }
      }
    }

    return '../../images/placeholder.png'
  },

  onLoad() {
    // 页面加载时请求每日文章
    this.loadDailyArticles()
    this.initAd()
  },

  // 初始化广告
  initAd() {
    // 若在开发者工具中无法预览广告，请切换开发者工具中的基础库版本
    // 在页面中定义插屏广告
    let interstitialAd = null

    // 在页面onLoad回调事件中创建插屏广告实例
    if (wx.createInterstitialAd) {
      interstitialAd = wx.createInterstitialAd({
        adUnitId: 'adunit-33b827f858676232'
      })
      interstitialAd.onLoad(() => { })
      interstitialAd.onError((err) => {
        console.error('插屏广告加载失败', err)
      })
      interstitialAd.onClose(() => { })
    }

    // 在适合的场景显示插屏广告
    if (interstitialAd) {
      interstitialAd.show().catch((err) => {
        console.error('插屏广告显示失败', err)
      })
    }
  },

  // 加载每日文章
  async loadDailyArticles() {
    if (this.data.loading) return

    this.setData({ loading: true })

    try {
      const res = await articleAPI.getDailyArticles()

      if (res && res.code === 200 && res.data) {
        // 为每个日期分组中的文章添加第一张图片
        const dailyArticlesWithImages = res.data.map(dayData => ({
          ...dayData,
          articles: dayData.articles.map(article => ({
            ...article,
            firstImage: this.getFirstImageFromContent(article.content)
          }))
        }))

        this.setData({
          dailyArticles: dailyArticlesWithImages,
          loading: false
        })
      } else {
        // 如果接口返回失败，使用模拟数据
        this.loadMockData()
      }
    } catch (error) {
      console.error('获取每日文章失败:', error)
      // 接口请求失败时使用模拟数据
      this.loadMockData()
    }
  },

  // 加载模拟数据（作为备用方案）
  loadMockData() {
    const mockDailyArticles = [
      {
        date: '2025年1月15日',
        lunar_date: '腊月十六',
        articles: [
          {
            id: Date.now() + Math.random(),
            title: '健康养生文章',
            description: '关于健康养生的实用指南',
            type: 'h5_link',
            h5_url: 'https://example.com/health-article',
            content: [{
              type: 'html',
              content: '<img src="https://via.placeholder.com/300x200/3498db/ffffff?text=健康" alt="健康图片"><p>健康养生内容</p>',
              order: 0
            }],
            status: 'published',
            view_count: 0,
            like_count: 0,
            is_featured: false,
            is_active: true,
            published_at: new Date().toISOString(),
            created_at: new Date().toISOString(),
            updated_at: new Date().toISOString(),
            firstImage: this.getFirstImageFromContent([{
              type: 'html',
              content: '<img src="https://via.placeholder.com/300x200/3498db/ffffff?text=健康" alt="健康图片"><p>健康养生内容</p>',
              order: 0
            }])
          }
        ]
      },
      {
        date: '2025年1月14日',
        lunar_date: '腊月十五',
        articles: [
          {
            id: Date.now() + Math.random() + 1,
            title: '美食制作教程',
            description: '详细的美食制作步骤',
            type: 'custom',
            h5_url: null,
            content: [{
              type: 'html',
              content: '<img src="https://via.placeholder.com/300x200/e74c3c/ffffff?text=美食" alt="美食图片"><div>美食制作内容</div>',
              order: 0
            }],
            status: 'published',
            view_count: 0,
            like_count: 0,
            is_featured: false,
            is_active: true,
            published_at: new Date().toISOString(),
            created_at: new Date().toISOString(),
            updated_at: new Date().toISOString(),
            firstImage: this.getFirstImageFromContent([{
              type: 'html',
              content: '<img src="https://via.placeholder.com/300x200/e74c3c/ffffff?text=美食" alt="美食图片"><div>美食制作内容</div>',
              order: 0
            }])
          },
          {
            id: Date.now() + Math.random() + 2,
            title: '旅游攻略分享',
            description: '精彩的旅游攻略和经验分享',
            type: 'h5_link',
            h5_url: 'https://example.com/travel-guide',
            content: [{
              type: 'html',
              content: '<img src="https://via.placeholder.com/300x200/2ecc71/ffffff?text=旅游" alt="旅游图片"><p>旅游攻略内容</p>',
              order: 0
            }],
            status: 'published',
            view_count: 0,
            like_count: 0,
            is_featured: false,
            is_active: true,
            published_at: new Date().toISOString(),
            created_at: new Date().toISOString(),
            updated_at: new Date().toISOString(),
            firstImage: this.getFirstImageFromContent([{
              type: 'html',
              content: '<img src="https://via.placeholder.com/300x200/2ecc71/ffffff?text=旅游" alt="旅游图片"><p>旅游攻略内容</p>',
              order: 0
            }])
          }
        ]
      }
    ]

    this.setData({
      dailyArticles: mockDailyArticles,
      loading: false
    })
  },

  // 文章点击事件
  onArticleTap(e) {
    const article = e.currentTarget.dataset.article
    
    if (!article) {
      wx.showToast({
        title: '文章不存在',
        icon: 'none'
      })
      return
    }

    if (article.type === 'h5_link' && article.h5_url) {
      // H5链接类型：跳转到webview页面
      wx.navigateTo({
        url: `/pages/webview/webview?url=${encodeURIComponent(article.h5_url)}&title=${encodeURIComponent(article.title)}`
      })
    } else if (article.type === 'custom') {
      // 自定义内容类型：跳转到文章详情页
      wx.navigateTo({
        url: `/pages/article-detail/article-detail?id=${article.id}`
      })
    } else {
      // 默认跳转到文章详情页
      wx.navigateTo({
        url: `/pages/article-detail/article-detail?id=${article.id}`
      })
    }
  },

  // 跳转到详情页（保留兼容性）
  goToDetail(e) {
    const articleId = e.currentTarget.dataset.id
    let article = null
    
    // 在每日文章数据中查找文章
    for (const dayData of this.data.dailyArticles) {
      article = dayData.articles.find(item => item.id == articleId)
      if (article) break
    }

    if (!article) {
      wx.showToast({
        title: '文章不存在',
        icon: 'none'
      })
      return
    }

    if (article.type === 'h5_link' && article.h5_url) {
      // H5链接类型：跳转到webview页面
      wx.navigateTo({
        url: `/pages/webview/webview?url=${encodeURIComponent(article.h5_url)}&title=${encodeURIComponent(article.title)}`
      })
    } else if (article.type === 'custom') {
      // 自定义内容类型：跳转到文章详情页
      wx.navigateTo({
        url: `/pages/article-detail/article-detail?id=${articleId}`
      })
    } else {
      // 默认跳转到文章详情页
      wx.navigateTo({
        url: `/pages/article-detail/article-detail?id=${articleId}`
      })
    }
  },

  // 测试文章详情页面
  testArticleDetail() {
    console.log('测试文章详情页面')
    wx.navigateTo({
      url: '/pages/article-detail/article-detail?id=mock',
      fail: (err) => {
        console.error('跳转失败:', err)
        wx.showToast({
          title: '跳转失败',
          icon: 'none'
        })
      }
    })
  },

  // 自定义tabBar切换事件
  onTabChange(e) {
    const { index, path } = e.detail;
    // 可以在这里添加切换前的逻辑处理
    console.log('Tab切换:', index, path);
  },

  // 下拉刷新
  onPullDownRefresh() {
    this.loadDailyArticles().then(() => {
      wx.stopPullDownRefresh()
    })
  },


})